Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Scaricare Immagine [C#]
Forum - C# / VB.NET - Scaricare Immagine [C#]

Avatar
Luk3 (Ex-Member)
Guru


Messaggi: 615
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 21:18
Venerdì, 17/04/2009
Ciao a tutti.
Ho bisogno di scaricare un'immagine e dopodichè visualizzarla in una picturebox.
Ho scritto questo:

Codice sorgente - presumibilmente C#

  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             string finale = "http://it.netlogstatic.com/p/oo/072/040/";
  4.             string ext = ".jpg";
  5.             string picid = "72040944";
  6.             Uri url = new Uri(string.Format(finale, picid, ext));
  7.             WebClient client = new WebClient();
  8.             string file = string.Format(picid, ext);
  9.             client.DownloadFileAsync(url, Application.StartupPath + file);
  10.             pictureBox1.Load(Application.StartupPath + file);
  11.        }



Ma dice che la picturebox non può caricare niente, perchè il file è in uso..
Se poi trovate altri errori ditemelo.
Grazie :k:

Ultima modifica effettuata da Luk3 il 17/04/2009 alle 21:19
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 21:47
Venerdì, 17/04/2009
Il tuo codice ha degli errori nella formazione delle stringhe e non devi usare la versione Async del Download ...

Codice sorgente - presumibilmente C#

  1. string picid = "72040944";
  2. Uri url = new Uri("http://it.netlogstatic.com/p/oo/072/040/" + picid.ToString() + ".jpg");
  3. WebClient client = new WebClient();
  4. string file = string.Format(picid + ".jpg");
  5. client.DownloadFile(url, Application.StartupPath + file);
  6. pictureBox1.Load(Application.StartupPath + file);


PM Quote
Avatar
Luk3 (Ex-Member)
Guru


Messaggi: 615
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 22:48
Venerdì, 17/04/2009
Grazie :k:
Avevo usato l'Async perchè secondo l'intellisense quella versione non mi bloccava il thread..

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:50
Venerdì, 17/04/2009
Testo quotato

Postato originariamente da Luk3:

Grazie :k:
Avevo usato l'Async perchè secondo l'intellisense quella versione non mi bloccava il thread..



E proprio per questo non era adatto. In questo modo veniva eseguita l'altra riga prima che il file fosse effettivamente scaricato ...

PM Quote
Avatar
Luk3 (Ex-Member)
Guru


Messaggi: 615
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 22:57
Venerdì, 17/04/2009
Ah Ok ;)
Grazie :k:

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:34
Sabato, 18/04/2009
Puoi comunque usare l'async e caricare l'immagine una volta che il download è terminato. Per far questo avresti bisogno di rendere il webclient visibile a livello di classe e di dichiararlo withevents o di aggiungere un handler da codice al suo evento DownloadFileCompleted (mi sembra si chiami così). Se l'immagine non è particolarmente grande, non è necessario, ma ricorda che il primo download di ogni webclient è sempre un po' più lento degli altri.

PM Quote